A number of electronic devices used in combination with software applications and positioning systems provide navigation information to users of the devices. For example, electronic devices used within transportation vehicles provide positioning information associated with geographic locations of the devices. These same devices also provide displays that provide visual information to the users of the devices. Some devices can communicate audibly with their users. Moreover, the devices are equipped with software applications to provide routing information. By and large, the devices are stand-alone devices providing primarily only navigation information to the users, although, in recent years, the devices and their concomitant software applications have been integrated into other multipurpose devices.
In order to provide navigation information, the devices must be interfaced to positioning systems and must include receivers or transceivers to resolve position information received from the positioning systems. One type of positioning system includes Global Positioning Systems (GPS). Such systems are well known and have a variety of uses. In general, GPS is a satellite-based radio navigation system capable of determining continuous position, velocity, time, and in some instances direction information for an unlimited number of users. Formally known as NAVSTAR, the GPS incorporates a plurality of satellites which orbit the earth in extremely precise orbits. Based on these precise orbits, GPS satellites can relay their location to any number of receiving units.
The GPS system is implemented when a device specially equipped to receive GPS data begins scanning radio frequencies for GPS satellite signals. Upon receiving a radio signal from a GPS satellite, the device can determine the precise location of that satellite via one of different conventional methods. The device will continue scanning for signals until it has acquired at least three different satellite signals. Implementing geometrical triangulation, the receiver utilizes the three known positions to determine its own two-dimensional position relative to the satellites. Additionally, acquiring a fourth satellite signal will allow the receiving device to calculate its three-dimensional position by the same geometrical calculation. The positioning and velocity data can be updated in real time on a continuous basis by an unlimited number of users.
In fact, although GPS enabled devices are often used to describe navigation devices, it will be readily appreciated that satellites need not be used at all to determine a geographic position of a receiving unit, since cellular towers or any customized transmitting radio frequency towers can be deployed and combined in groups of three or more. With such a configuration, any standard geometric triangulation algorithm can be used to determine an approximate location of the receiving unit. Moreover, dead reckoning can be used to determine approximate locations of receiving units.
Yet, having a positioning enabled device will still not provide all the necessary information to make the device useful for a user of the device. To remedy this, the device also includes a number of software applications which have access to cartographic data, which can occupy large amounts of memory within the device. Cartographic data includes, byway of example only, thoroughfare identifications, intersection identifications, altitude information, depth information, landmark information, shoreline information, marine information, aeronautical information, longitude information, latitude information and the like.
Once a device is interfaced with a positioning system and has software applications with access to cartographic data, a variety of well-known operations can be performed by a number of the software applications to provide useful information to the user of the device. For example, given the appropriate cartographic data, a user can input into the device a desired destination, and software applications use navigation operations to calculate a projected route for the user to traverse in order to reach the user's inputted destination.
Additional software applications use still more navigation operations to map and lock the device's current location to a displayed map and then overlay the projected route and the current location on the displayed map. As the device travels, still other software applications use more navigation operations to provide advance guidance to the user in order to indicate which direction the user should pursue in order to stay on the projected route. Furthermore, guidance can be audibly provided from the device to the user. Of course a variety of additional navigation operations can be provided within the software applications, all of which are well known to one of ordinary skill in the art.
Existing navigation operations are packaged, distributed, or otherwise installed on existing devices within predefined and stand-alone software applications residing on the device. As a result there has been little customization with respect to existing software applications. And, the customization which has occurred is achieved by a user requesting customization from the software vendor who provides the software applications. This is so, because the navigation operations are tightly coupled and integrated during software development within the software applications. Correspondingly, each time a new customization for a software application is requested, expensive and time-consuming software development must be pursued.
Moreover, when a new electronic device, having a potentially never before encountered processing environment, is equipped to interface with a positioning system, expensive and time-consuming software development is necessary to port one or more of the navigation operations to new stand-alone software applications on the new device.
Therefore, there exists a need for more accessible navigation operations, to rapidly permit any desired customization of software applications processing on electronic devices. In addition, there is also a need for more portable navigation operations to permit rapidly deployment of software applications on new electronic devices having unique processing environments.